package com.labo.erpcrm.dao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;

import com.labo.erpcrm.bean.Client;
import com.labo.erpcrm.bean.Fournisseur;


public class FournisseurDao extends GenericRepository<Fournisseur, Integer> {

	public Fournisseur GetById(Integer Id){
		Session s = HelperSessionFactory.getSession();
		Transaction trans = s.beginTransaction();
		Criteria criteria = s.createCriteria(Fournisseur.class).add(Restrictions.eq("id_fournisseur", Id));
		Fournisseur fournisseur = (Fournisseur) criteria.uniqueResult();
		trans.commit();
		return fournisseur;
	}

	public Fournisseur GetByMail(String email){
		Session s = HelperSessionFactory.getSession();
		Transaction trans = s.beginTransaction();
		Criteria criteria = s.createCriteria(Fournisseur.class).add(Restrictions.eq("mail_fournisseur", email));
		Fournisseur fournisseur = (Fournisseur) criteria.uniqueResult();
		trans.commit();
		return fournisseur;
	}

	public List<Fournisseur> GetAllByName(String name){
		Session s = HelperSessionFactory.getSession();
		Transaction trans = s.beginTransaction();
		Criteria criteria = s.createCriteria(Fournisseur.class).add(Restrictions.like("nom_fournisseur", name+"%"));
		@SuppressWarnings("unchecked")
		List<Fournisseur> lstFournisseur = (List<Fournisseur>) criteria.list();
		trans.commit();
		return lstFournisseur;
	}

	@SuppressWarnings("unchecked")
	public List<Fournisseur> GetAll(){
		Session s = HelperSessionFactory.getSession();
		Transaction trans = s.beginTransaction();
		Criteria criteria = s.createCriteria(Fournisseur.class);
		List<Fournisseur> lstFournisseur = (List<Fournisseur>) criteria.list();
		trans.commit();
		return lstFournisseur ;
	}

}
